<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  
  <title>hardware monitor | Matrix207&#39;s Blog</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <meta name="description" content="Most of the motherboard can monitor hardware right now, what they can support isdepends on the sensor used. So, if you want to known how monitor, you shouldget the type of sensor chip. I know supermic">
<meta property="og:type" content="article">
<meta property="og:title" content="hardware monitor">
<meta property="og:url" content="http://yoursite.com/2012/12/17/monitor-hardware-status/index.html">
<meta property="og:site_name" content="Matrix207's Blog">
<meta property="og:description" content="Most of the motherboard can monitor hardware right now, what they can support isdepends on the sensor used. So, if you want to known how monitor, you shouldget the type of sensor chip. I know supermic">
<meta property="og:updated_time" content="2016-07-17T14:33:55.000Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="hardware monitor">
<meta name="twitter:description" content="Most of the motherboard can monitor hardware right now, what they can support isdepends on the sensor used. So, if you want to known how monitor, you shouldget the type of sensor chip. I know supermic">
  
    <link rel="alternate" href="/atom.xml" title="Matrix207&#39;s Blog" type="application/atom+xml">
  
  
    <link rel="icon" href="/favicon.png">
  
  
    <link href="//fonts.googleapis.com/css?family=Source+Code+Pro" rel="stylesheet" type="text/css">
  
  <link rel="stylesheet" href="/css/style.css">
  

</head>

<body>
  <div id="container">
    <div id="wrap">
      <header id="header">
  <div id="banner"></div>
  <div id="header-outer" class="outer">
    <div id="header-title" class="inner">
      <h1 id="logo-wrap">
        <a href="/" id="logo">Matrix207&#39;s Blog</a>
      </h1>
      
    </div>
    <div id="header-inner" class="inner">
      <nav id="main-nav">
        <a id="main-nav-toggle" class="nav-icon"></a>
        
          <a class="main-nav-link" href="/">Home</a>
        
          <a class="main-nav-link" href="/archives">Archives</a>
        
      </nav>
      <nav id="sub-nav">
        
          <a id="nav-rss-link" class="nav-icon" href="/atom.xml" title="Flux RSS"></a>
        
        <a id="nav-search-btn" class="nav-icon" title="Rechercher"></a>
      </nav>
      <div id="search-form-wrap">
        <form action="//google.com/search" method="get" accept-charset="UTF-8" class="search-form"><input type="search" name="q" results="0" class="search-form-input" placeholder="Search"><button type="submit" class="search-form-submit">&#xF002;</button><input type="hidden" name="sitesearch" value="http://yoursite.com"></form>
      </div>
    </div>
  </div>
</header>
      <div class="outer">
        <section id="main"><article id="post-monitor-hardware-status" class="article article-type-post" itemscope itemprop="blogPost">
  <div class="article-meta">
    <a href="/2012/12/17/monitor-hardware-status/" class="article-date">
  <time datetime="2012-12-16T16:00:00.000Z" itemprop="datePublished">2012-12-17</time>
</a>
    
  <div class="article-category">
    <a class="article-category-link" href="/categories/windows/">windows</a>
  </div>

  </div>
  <div class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="article-title" itemprop="name">
      hardware monitor
    </h1>
  

      </header>
    
    <div class="article-entry" itemprop="articleBody">
      
        <p>Most of the motherboard can monitor hardware right now, what they can support is<br>depends on the sensor used. So, if you want to known how monitor, you should<br>get the type of sensor chip. I know supermicro x9scl use Nuvoton NCT6776F  and<br>X8SIL use Winbond W83627DHG-P. Once get this message, you can search the<br>datasheet, and get the method how to do it.</p>
<p>On different operation system, have different method to read/write I/O port. I<br>know <a href="http://www.internals.com/" target="_blank" rel="external">WinIO</a> on windows, IoWrite8/16/32 on Linux.</p>
<p>There is a good open source software “Open Hardware Monitor”, which develop by<br>C# language. It support almost all the motherboard.</p>
<hr>
<h1 id="1-Datasheet-of-chips"><a href="#1-Datasheet-of-chips" class="headerlink" title="1. Datasheet of chips"></a>1. Datasheet of chips</h1><p>Look the access channels on file <a href="http://webshop.atlantikelektronik.de/Mailings/NCT6776F_NCT6776D_Datasheet_V1_2.pdf" target="_blank" rel="external">NCT6776F_NCT6776D_Datasheet_V1_2</a><br> page 275</p>
<pre><code>19.2 ACCESS CHANNELS
There are two different channels to set up/access the GPIO ports. The first one is the indirect access via register
2E/2F (4E/4F, it depends by HEFRAS trapping). The registers can be read / written only when the respective
logical device ID and port number are selected.
</code></pre><p>known that rigister index is 0x2E, and data Input/Output port is 0x2F </p>
<p>On page 54<br>    To program the NCT6776F / NCT6776D configuration registers, the following configuration procedures must be<br>    followed in sequence:<br>    (1). Enter the Extended Function Mode.<br>    (2). Configure the configuration registers.<br>    (3). Exit the Extended Function Mode.</p>
<pre><code>7.1.1 Enter the Extended Function Mode
To place the chip into the Extended Function Mode, two successive writes of 0x87 must be applied to Extended
Function Enable Registers (EFERs, i.e. 2Eh or 4Eh).

7.1.2 Configure the Configuration Registers
The chip selects the Logical Device and activates the desired Logical Devices through Extended Function Index
Register (EFIR) and Extended Function Data Register (EFDR). The EFIR is located at the same address as the
EFER, and the EFDR is located at address (EFIR+1).
First, write the Logical Device Number (i.e. 0x07) to the EFIR and then write the number of the desired Logical
Device to the EFDR. If accessing the Chip (Global) Control Registers, this step is not required.

Secondly, write the address of the desired configuration register within the Logical Device to the EFIR and then
write (or read) the desired configuration register through the EFDR.

7.1.3 Exit the Extended Function Mode
To exit the Extended Function Mode, writing 0xAA to the EFER is required. Once the chip exits the Extended
Function Mode, it is in the normal running mode and is ready to enter the configuration mode.
</code></pre><p>Software Programming Example<br>The following example is written in Intel 8086 assembly language. It assumes that the EFER is located at 2Eh, so<br>the EFIR is located at 2Eh and the EFDR is located at 2Fh. If the HEFRAS (CR[26h] bit 6 showing the value of<br>the strap pin at power on) is set, 2Eh can be directly replaced by 4Eh and 2Fh replaced by 4Fh.<br>This example programs the configuration register F0h (clock source) of logical device 1 (UART A) to the value of<br>3Ch (24MHz). First, one must enter the Extended Function Mode, then setting the Logical Device Number (Index<br>07h) to 01h. Then program index F0h to 3Ch. Finally, exit the Extended Function Mode.</p>
<pre><code>;-----------------------------------------------------
; Enter the Extended Function Mode
;-----------------------------------------------------
MOV DX, 2EH
MOV AL, 87H
OUT DX, AL
OUT DX, AL
;-----------------------------------------------------------------------------
; Configure Logical Device 1, Configuration Register CRF0
;-----------------------------------------------------------------------------
MOV DX, 2EH
MOV AL, 07H
OUT DX, AL
; point to Logical Device Number Reg.
MOV DX, 2FH
MOV AL, 01H
OUT DX, AL
; select Logical Device 1
;
MOV DX, 2EH
MOV AL, F0H
OUT DX, AL
; select CRF0
MOV DX, 2FH
MOV AL, 3CH
OUT DX, AL
; update CRF0 with value 3CH
;-----------------------------------------------
; Exit the Extended Function Mode
;----------------------------------------------
MOV DX, 2EH
MOV AL, AAH
OUT DX, AL
</code></pre><hr>
<h1 id="2-Open-Hardware-Monitor"><a href="#2-Open-Hardware-Monitor" class="headerlink" title="2. Open Hardware Monitor"></a>2. Open Hardware Monitor</h1><p><a href="http://openhardwaremonitor.org/" target="_blank" rel="external">Homepage</a><br><a href="http://code.google.com/p/open-hardware-monitor/" target="_blank" rel="external">source code</a>  </p>
<p>The Open Hardware Monitor is a free open source software that monitors<br>temperature sensors, fan speeds, voltages, load and clock speeds of a computer.  </p>
<p>As below, introduct how to use VC++ to monitor HW status on windows: </p>
<p>1). modify computer.cs，add some interface like GetFanSpeed(). if have problem , look report function .<br>2). set the project properity to output class library.<br>3). Reference <a href="http://matrix207.github.com/2012/09/16/VC++-Use-CSharp-Dll/" target="_blank" rel="external">VC++ use C# DLL</a>  </p>
<h2 id="1-1-Analyze-open-hardware-monitor"><a href="#1-1-Analyze-open-hardware-monitor" class="headerlink" title="1.1 Analyze open-hardware-monitor"></a>1.1 Analyze open-hardware-monitor</h2><p>Use Winbond W83627DHG-P chip as example.  </p>
<p>A description about how to monitor hardware, see this<br><a href="http://www.supermicro.com/support/faqs/faq.cfm?faq=12015" target="_blank" rel="external">http://www.supermicro.com/support/faqs/faq.cfm?faq=12015</a></p>
<pre><code>Question
  I&apos;m trying to access the Winbond 83627DHG-P IO chip on the motherboard X8SIL. 
  We want to use the LMsensor. Do you have the offset codes for the smbus?

Answer
  Bus Type = ISAIO/SMBus
  One W83627DHG-P

  Windbond W83627DHG-P, Slave Address=0x2d (0x5a in 8-Bit format)
  OR IndexReg=A15, DataReg=A16
  =============================================================

  Fan1 Fan Speed, Bank 0, Offset 0x29 RPM = 1350000/8/Data
  Fan2 Fan Speed, Bank 5, Offset 0x53 RPM = 1350000/8/Data
  Fan3 Fan Speed, Bank 0, Offset 0x28 RPM = 1350000/8/Data
  Fan4 Fan Speed, Bank 0, Offset 0x3f RPM = 1350000/8/Data
  Fan5 Fan Speed, Bank 0, Offset 0x2a RPM = 1350000/8/Data

  CPU Voltage, Bank 0, Offset 0x20 Voltage = Data* 0.008
  -12V Voltage, Bank 0, Offset 0x26 Voltage = ((Data*0.008-2.048)/(10./242.))+2.048
  +12V Voltage, Bank 0, Offset 0x21 Voltage = Data* 0.008/ (10./66.2)

  AVCC Voltage, Bank 0, Offset 0x22 Voltage = Data* 0.016
  3.3Vcc Voltage, Bank 0, Offset 0x23 Voltage = Data* 0.016

  DIMM Voltage, Bank 0, Offset 0x24 Voltage = Data* 0.008
  +5V Voltage, Bank 0, Offset 0x25 Voltage = Data* 0.008/ (10./40.)
  +3.3VSb Voltage, Bank 5, Offset 0x50 Voltage = Data* 0.016

  VBAT Voltage, Bank 5, Offset 0x51 Voltage = Data* 0.016

  CPU Temperature, Bank 1, Offset 0x50 Temperature = Data

  System Temperature, Bank 2, Offset 0x50 Temperature = Data

  Chassis Intrusion, Bank 0, Offset 0x42, BitMask 0x10 1 = Bad, 0 = Good
  (Clear Bit: Bank 0, Offset 0x46, BitMask 0x80)

  Power Supply Failure, GP23(From W83627DHG-P) 1 = Good, 0 = Bad
</code></pre><hr>
<h3 id="1-1-1-File-Hardware-LPC-LPCIO-cs"><a href="#1-1-1-File-Hardware-LPC-LPCIO-cs" class="headerlink" title="1.1.1 File: Hardware/LPC/LPCIO.cs"></a>1.1.1 File: Hardware/LPC/LPCIO.cs</h3><p>IO Ports</p>
<pre><code>// I/O Ports
private readonly ushort[] REGISTER_PORTS = new ushort[] { 0x2E, 0x4E };
private readonly ushort[] VALUE_PORTS = new ushort[] { 0x2F, 0x4F };
</code></pre><p>Winbond, Nuvoton, Fintek</p>
<pre><code>private const byte FINTEK_VENDOR_ID_REGISTER = 0x23;
private const ushort FINTEK_VENDOR_ID = 0x1934;

private const byte WINBOND_NUVOTON_HARDWARE_MONITOR_LDN = 0x0B;

private const byte F71858_HARDWARE_MONITOR_LDN = 0x02;
private const byte FINTEK_HARDWARE_MONITOR_LDN = 0x04;

private void WinbondNuvotonFintekEnter() {
  Ring0.WriteIoPort(registerPort, 0x87);
  Ring0.WriteIoPort(registerPort, 0x87);
}

private void WinbondNuvotonFintekExit() {
  Ring0.WriteIoPort(registerPort, 0xAA);
}
</code></pre><p>ITE</p>
<pre><code>private const byte IT87_ENVIRONMENT_CONTROLLER_LDN = 0x04;
private const byte IT8705_GPIO_LDN = 0x05;
private const byte IT87XX_GPIO_LDN = 0x07;
private const byte IT87_CHIP_VERSION_REGISTER = 0x22;

private void IT87Enter() {
  Ring0.WriteIoPort(registerPort, 0x87);
  Ring0.WriteIoPort(registerPort, 0x01);
  Ring0.WriteIoPort(registerPort, 0x55);
  Ring0.WriteIoPort(registerPort, 0x55);
}

private void IT87Exit() {
  Ring0.WriteIoPort(registerPort, CONFIGURATION_CONTROL_REGISTER);
  Ring0.WriteIoPort(valuePort, 0x02);
}
</code></pre><p>SMSC</p>
<pre><code>private void SMSCEnter() {
  Ring0.WriteIoPort(registerPort, 0x55);
}

private void SMSCExit() {
  Ring0.WriteIoPort(registerPort, 0xAA);
}
</code></pre><h4 id="How-to-get-value"><a href="#How-to-get-value" class="headerlink" title="How to get value:"></a>How to get value:</h4><p>call ReadByte to get value:  </p>
<pre><code>byte id = ReadByte(CHIP_ID_REGISTER);
byte revision = ReadByte(CHIP_REVISION_REGISTER);
</code></pre><p>look at function ReadByte:</p>
<pre><code>private byte ReadByte(byte register) {
  Ring0.WriteIoPort(registerPort, register);
  return Ring0.ReadIoPort(valuePort);
}
</code></pre><p>first, write register value to registerPort;<br>second, read value from valueport. </p>
<hr>
<h3 id="1-1-2-File-Hardware-LPC-W836XX-cs"><a href="#1-1-2-File-Hardware-LPC-W836XX-cs" class="headerlink" title="1.1.2 File: Hardware/LPC/W836XX.cs"></a>1.1.2 File: Hardware/LPC/W836XX.cs</h3><h4 id="How-to-get-value-1"><a href="#How-to-get-value-1" class="headerlink" title="How to get value:"></a>How to get value:</h4><pre><code>// Hardware Monitor
private const byte ADDRESS_REGISTER_OFFSET = 0x05;
private const byte DATA_REGISTER_OFFSET = 0x06;

// Hardware Monitor Registers
private const byte BANK_SELECT_REGISTER = 0x4E;

private byte ReadByte(byte bank, byte register) {
  Ring0.WriteIoPort(
     (ushort)(address + ADDRESS_REGISTER_OFFSET), BANK_SELECT_REGISTER);
  Ring0.WriteIoPort(
     (ushort)(address + DATA_REGISTER_OFFSET), bank);
  Ring0.WriteIoPort(
     (ushort)(address + ADDRESS_REGISTER_OFFSET), register);
  return Ring0.ReadIoPort(
    (ushort)(address + DATA_REGISTER_OFFSET));
} 
</code></pre><h4 id="What-is-the-value-of-“address”"><a href="#What-is-the-value-of-“address”" class="headerlink" title="What is the value of “address”:"></a>What is the value of “address”:</h4><p>set value by construction</p>
<pre><code>public W836XX(Chip chip, byte revision, ushort address) {
  this.address = address;
  this.revision = revision;
  this.chip = chip;
  ...
}
</code></pre><p>on LPCIO.cs, found the calling code:</p>
<pre><code>private const byte BASE_ADDRESS_REGISTER = 0x60;

ushort address = ReadWord(BASE_ADDRESS_REGISTER);

switch (chip) {
  case Chip.W83627DHG:
  case Chip.W83627DHGP:
  case Chip.W83627EHF:
  case Chip.W83627HF:
  case Chip.W83627THF:
  case Chip.W83667HG:
  case Chip.W83667HGB:
  case Chip.W83687THF:
    superIOs.Add(new W836XX(chip, revision, address));
    break;
  ...
}
</code></pre><h4 id="Get-temperature"><a href="#Get-temperature" class="headerlink" title="Get temperature:"></a>Get temperature:</h4><pre><code>private readonly byte[] TEMPERATURE_REG = new byte[] { 0x50, 0x50, 0x27 };
private readonly byte[] TEMPERATURE_BANK = new byte[] { 1, 2, 0 };

for (int i = 0; i &lt; temperatures.Length; i++) {
  int value = ((sbyte)ReadByte(TEMPERATURE_BANK[i], 
    TEMPERATURE_REG[i])) &lt;&lt; 1;
  if (TEMPERATURE_BANK[i] &gt; 0) 
    value |= ReadByte(TEMPERATURE_BANK[i],
      (byte)(TEMPERATURE_REG[i] + 1)) &gt;&gt; 7;

  float temperature = value / 2.0f;
  if (temperature &lt;= 125 &amp;&amp; temperature &gt;= -55 &amp;&amp; !peciTemperature[i]) {
    temperatures[i] = temperature;
  } else {
    temperatures[i] = null;
  }
}
</code></pre><h4 id="Get-fan-speed"><a href="#Get-fan-speed" class="headerlink" title="Get fan speed:"></a>Get fan speed:</h4><p>call ReadByte(FAN_TACHO_BANK[i], FAN_TACHO_REG[i]) to get speed value to “count”<br>, then set real fan spee to array variable “fans[]“.</p>
<pre><code>private readonly byte[] FAN_TACHO_REG = 
  new byte[] { 0x28, 0x29, 0x2A, 0x3F, 0x53 };
private readonly byte[] FAN_TACHO_BANK = 
  new byte[] { 0, 0, 0, 0, 5 };       
private readonly byte[] FAN_BIT_REG =
  new byte[] { 0x47, 0x4B, 0x4C, 0x59, 0x5D };
private readonly byte[] FAN_DIV_BIT0 = new byte[] { 36, 38, 30, 8, 10 };
private readonly byte[] FAN_DIV_BIT1 = new byte[] { 37, 39, 31, 9, 11 };
private readonly byte[] FAN_DIV_BIT2 = new byte[] { 5, 6, 7, 23, 15 };


ulong bits = 0;
for (int i = 0; i &lt; FAN_BIT_REG.Length; i++)
    bits = (bits &lt;&lt; 8) | ReadByte(0, FAN_BIT_REG[i]);

ulong newBits = bits;
for (int i = 0; i &lt; fans.Length; i++) {
    int count = ReadByte(FAN_TACHO_BANK[i], FAN_TACHO_REG[i]);

    // assemble fan divisor
    int divisorBits = (int)(
            (((bits &gt;&gt; FAN_DIV_BIT2[i]) &amp; 1) &lt;&lt; 2) |
            (((bits &gt;&gt; FAN_DIV_BIT1[i]) &amp; 1) &lt;&lt; 1) |
            ((bits &gt;&gt; FAN_DIV_BIT0[i]) &amp; 1));
    int divisor = 1 &lt;&lt; divisorBits;

    float value = (count &lt; 0xff) ? 1.35e6f / (count * divisor) : 0;
    fans[i] = value;

    // update fan divisor
    if (count &gt; 192 &amp;&amp; divisorBits &lt; 7) 
        divisorBits++;
    if (count &lt; 96 &amp;&amp; divisorBits &gt; 0)
        divisorBits--;

    newBits = SetBit(newBits, FAN_DIV_BIT2[i], (divisorBits &gt;&gt; 2) &amp; 1);
    newBits = SetBit(newBits, FAN_DIV_BIT1[i], (divisorBits &gt;&gt; 1) &amp; 1);
    newBits = SetBit(newBits, FAN_DIV_BIT0[i], divisorBits &amp; 1);
}
</code></pre><hr>
<h1 id="3-lm-sensors"><a href="#3-lm-sensors" class="headerlink" title="3. lm-sensors"></a>3. lm-sensors</h1><p><strong>Introduction</strong></p>
<ul>
<li><a href="http://www.lm-sensors.org/wiki/Download" target="_blank" rel="external">source code download</a>  </li>
<li><a href="http://www.lm-sensors.org/browser/lm-sensors/trunk/doc/developers" target="_blank" rel="external">developer</a>  </li>
<li><a href="http://blog.csdn.net/zhenwenxian/article/details/5331079" target="_blank" rel="external">Lm_sensors和相关技术介绍</a>  </li>
</ul>
<p><strong>lm-sensors configurations</strong>  </p>
<ul>
<li><a href="http://www.lm-sensors.org/wiki/Configurations/Intel" target="_blank" rel="external">Intel</a></li>
<li><a href="http://www.lm-sensors.org/wiki/Configurations/SuperMicro" target="_blank" rel="external">SuperMicro</a>  </li>
<li><a href="http://www.lm-sensors.org/wiki/Configurations/Gigabyte" target="_blank" rel="external">Gigabyte</a></li>
<li><a href="http://www.lm-sensors.org/wiki/Configurations/Asus" target="_blank" rel="external">Asus</a></li>
<li><a href="http://www.lm-sensors.org/wiki/Configurations" target="_blank" rel="external">more</a>  </li>
</ul>
<p><strong>Install</strong></p>
<p>install: <code>yum install lm_sensors</code><br>monitor: <code>sensors</code>  </p>
<hr>
<h1 id="4-Use-WinIO"><a href="#4-Use-WinIO" class="headerlink" title="4. Use WinIO"></a>4. Use WinIO</h1><h2 id="watchdog"><a href="#watchdog" class="headerlink" title="watchdog"></a>watchdog</h2><p>reset Watchdog timeout</p>
<p>Assembly code:</p>
<pre><code>mov    dx, 2eh
mov    al, 87h
out    dx, al
out    dx, al    ; write 0x87 to port 0x2e twice
mov    al, 07h
out    dx, al    ; set Register 0x07 to Index Port
mov    dx, 2fh
mov    al, 08h
out    dx, al    ; switch to Watchdog control page

mov    dx, 2eh
mov    al, f6h
out    dx, al    ; set Register 0xf6 to Index Port
mov    dx, 2fh
mov    al, ah
out    dx, al    ; write time-out value 0x0A to Data Port

mov    dx, 2eh
mov    al, aah
out    dx, al    ; write 0xaa to port 0x2e once
</code></pre><p>C code:</p>
<pre><code>IoWrite8(0x2E,0x87); //write 0x87 to port 0x2e twice
IoWrite8(0x2E,0x87);
IoWrite8(0x2E,0x07); //set Register 0x07 to Index Port
IoWrite8(0x2F,0x08); //switch to Watchdog control page

IoWrite8(0x2E,0xF6); //set Register 0xf6 to Index Port
IoWrite8(0x2F,0x0A); //write time-out value 0x0A to Data Port

IoWrite8(0x2E,0xAA); //write 0xaa to port 0x2e once
</code></pre><p>Want more, visit my windows watchdog project <a href="https://github.com/matrix207/VC/tree/master/watchdog" target="_blank" rel="external">here</a></p>
<p><a href="http://matrix207.github.com/2012/09/16/winio-sample/" target="_blank" rel="external">WinIO sample</a></p>
<hr>
<h1 id="5-Reference"><a href="#5-Reference" class="headerlink" title="5. Reference:"></a>5. Reference:</h1><ul>
<li><a href="http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/CloudAndComputingIC/SuperIO/SuperIOforDesktopandIPC/Documents/W83627DHG-P_W83627DHG-PT.pdf" target="_blank" rel="external">W83627DHG-P W83627DHG-PT NUVOTON LPC I/O</a></li>
<li><a href="http://webshop.atlantikelektronik.de/Mailings/NCT6776F_NCT6776D_Datasheet_V1_2.pdf" target="_blank" rel="external">NCT6776F_NCT6776D_Datasheet_V1_2</a></li>
<li><a href="http://lxr.free-electrons.com/source/drivers/watchdog/w83627hf_wdt.c" target="_blank" rel="external">linux/drivers/watchdog/w83627hf_wdt.c</a></li>
<li><a href="http://lxr.free-electrons.com/source/drivers/watchdog/iTCO_vendor_support.c" target="_blank" rel="external">linux/drivers/watchdog/iTCO_vendor_support.c</a></li>
<li><a href="http://lxr.free-electrons.com/source/drivers/hwmon/w83627ehf.c" target="_blank" rel="external">linux/drivers/hwmon/w83627ehf.c</a></li>
<li><a href="http://bbs.csdn.net/topics/390214041" target="_blank" rel="external">watchdog clear</a></li>
</ul>

      
    </div>
    <footer class="article-footer">
      <a data-url="http://yoursite.com/2012/12/17/monitor-hardware-status/" data-id="ciqqpe1f00018nmpvyhjp6yfd" class="article-share-link">Partager</a>
      
      
    </footer>
  </div>
  
    
<nav id="article-nav">
  
    <a href="/2012/12/17/visual-studio-project-atuo-compile/" id="article-nav-newer" class="article-nav-link-wrap">
      <strong class="article-nav-caption">Récent</strong>
      <div class="article-nav-title">
        
          Viusal studio project auto compile
        
      </div>
    </a>
  
  
    <a href="/2012/12/15/svn-project-revision-monitor/" id="article-nav-older" class="article-nav-link-wrap">
      <strong class="article-nav-caption">Ancien</strong>
      <div class="article-nav-title">SVN project revision monitor</div>
    </a>
  
</nav>

  
</article>

</section>
        
          <aside id="sidebar">
  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Catégories</h3>
    <div class="widget">
      <ul class="category-list"><li class="category-list-item"><a class="category-list-link" href="/categories/blog/">blog</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/database/">database</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/english/">english</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/kernel/">kernel</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/language/">language</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/linux/">linux</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/math/">math</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/network/">network</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/others/">others</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/person/">person</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/program/">program</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/source/">source</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/storage/">storage</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/tools/">tools</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/windows/">windows</a></li></ul>
    </div>
  </div>


  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Mot-clés</h3>
    <div class="widget">
      <ul class="tag-list"><li class="tag-list-item"><a class="tag-list-link" href="/tags/FAQ/">FAQ</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/IRC/">IRC</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/Translation/">Translation</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/android/">android</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/api/">api</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/assembly/">assembly</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/awk/">awk</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/batch/">batch</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/blog/">blog</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/book/">book</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/c/">c</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/c/">c++</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/cache/">cache</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/crash/">crash</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/database/">database</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/debug/">debug</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/dot/">dot</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/driver/">driver</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/emacs/">emacs</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/exploit/">exploit</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/file-system/">file system</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/filesystem/">filesystem</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/flowchart/">flowchart</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/gcc/">gcc</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/git/">git</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/google/">google</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/graphviz/">graphviz</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/hexo/">hexo</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/hosts/">hosts</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/iscsi/">iscsi</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/java/">java</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/javascript/">javascript</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/job/">job</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/json/">json</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/kernel/">kernel</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/linux/">linux</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/lisp/">lisp</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/lua/">lua</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/makefile/">makefile</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/malloc/">malloc</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/math/">math</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/maxima/">maxima</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/memory/">memory</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/memory-overflow/">memory overflow</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/mtrace/">mtrace</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/netdisk/">netdisk</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/network/">network</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/others/">others</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/pandoc/">pandoc</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/performance/">performance</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/person/">person</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/protobuf/">protobuf</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/python/">python</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/rsync/">rsync</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/sed/">sed</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/shell/">shell</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/skype/">skype</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/sms/">sms</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/source/">source</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/ssh/">ssh</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/stack/">stack</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/storage/">storage</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/study/">study</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/svn/">svn</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/sync/">sync</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/test/">test</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/time/">time</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/tools/">tools</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/valgrind/">valgrind</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/vi/">vi</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/vim/">vim</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/virtual/">virtual</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/wget/">wget</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/windows/">windows</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/wireshark/">wireshark</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/write/">write</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/xml/">xml</a></li></ul>
    </div>
  </div>


  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Nuage de mot-clés</h3>
    <div class="widget tagcloud">
      <a href="/tags/FAQ/" style="font-size: 10px;">FAQ</a> <a href="/tags/IRC/" style="font-size: 10px;">IRC</a> <a href="/tags/Translation/" style="font-size: 13px;">Translation</a> <a href="/tags/android/" style="font-size: 10px;">android</a> <a href="/tags/api/" style="font-size: 10px;">api</a> <a href="/tags/assembly/" style="font-size: 10px;">assembly</a> <a href="/tags/awk/" style="font-size: 11px;">awk</a> <a href="/tags/batch/" style="font-size: 14px;">batch</a> <a href="/tags/blog/" style="font-size: 10px;">blog</a> <a href="/tags/book/" style="font-size: 10px;">book</a> <a href="/tags/c/" style="font-size: 16px;">c</a> <a href="/tags/c/" style="font-size: 19px;">c++</a> <a href="/tags/cache/" style="font-size: 10px;">cache</a> <a href="/tags/crash/" style="font-size: 10px;">crash</a> <a href="/tags/database/" style="font-size: 17px;">database</a> <a href="/tags/debug/" style="font-size: 12px;">debug</a> <a href="/tags/dot/" style="font-size: 10px;">dot</a> <a href="/tags/driver/" style="font-size: 10px;">driver</a> <a href="/tags/emacs/" style="font-size: 11px;">emacs</a> <a href="/tags/exploit/" style="font-size: 10px;">exploit</a> <a href="/tags/file-system/" style="font-size: 10px;">file system</a> <a href="/tags/filesystem/" style="font-size: 12px;">filesystem</a> <a href="/tags/flowchart/" style="font-size: 10px;">flowchart</a> <a href="/tags/gcc/" style="font-size: 10px;">gcc</a> <a href="/tags/git/" style="font-size: 12px;">git</a> <a href="/tags/google/" style="font-size: 11px;">google</a> <a href="/tags/graphviz/" style="font-size: 11px;">graphviz</a> <a href="/tags/hexo/" style="font-size: 10px;">hexo</a> <a href="/tags/hosts/" style="font-size: 10px;">hosts</a> <a href="/tags/iscsi/" style="font-size: 14px;">iscsi</a> <a href="/tags/java/" style="font-size: 10px;">java</a> <a href="/tags/javascript/" style="font-size: 10px;">javascript</a> <a href="/tags/job/" style="font-size: 10px;">job</a> <a href="/tags/json/" style="font-size: 10px;">json</a> <a href="/tags/kernel/" style="font-size: 14px;">kernel</a> <a href="/tags/linux/" style="font-size: 14px;">linux</a> <a href="/tags/lisp/" style="font-size: 10px;">lisp</a> <a href="/tags/lua/" style="font-size: 10px;">lua</a> <a href="/tags/makefile/" style="font-size: 10px;">makefile</a> <a href="/tags/malloc/" style="font-size: 10px;">malloc</a> <a href="/tags/math/" style="font-size: 11px;">math</a> <a href="/tags/maxima/" style="font-size: 10px;">maxima</a> <a href="/tags/memory/" style="font-size: 11px;">memory</a> <a href="/tags/memory-overflow/" style="font-size: 10px;">memory overflow</a> <a href="/tags/mtrace/" style="font-size: 10px;">mtrace</a> <a href="/tags/netdisk/" style="font-size: 10px;">netdisk</a> <a href="/tags/network/" style="font-size: 20px;">network</a> <a href="/tags/others/" style="font-size: 18px;">others</a> <a href="/tags/pandoc/" style="font-size: 10px;">pandoc</a> <a href="/tags/performance/" style="font-size: 16px;">performance</a> <a href="/tags/person/" style="font-size: 11px;">person</a> <a href="/tags/protobuf/" style="font-size: 11px;">protobuf</a> <a href="/tags/python/" style="font-size: 10px;">python</a> <a href="/tags/rsync/" style="font-size: 10px;">rsync</a> <a href="/tags/sed/" style="font-size: 11px;">sed</a> <a href="/tags/shell/" style="font-size: 15px;">shell</a> <a href="/tags/skype/" style="font-size: 11px;">skype</a> <a href="/tags/sms/" style="font-size: 10px;">sms</a> <a href="/tags/source/" style="font-size: 11px;">source</a> <a href="/tags/ssh/" style="font-size: 10px;">ssh</a> <a href="/tags/stack/" style="font-size: 10px;">stack</a> <a href="/tags/storage/" style="font-size: 15px;">storage</a> <a href="/tags/study/" style="font-size: 10px;">study</a> <a href="/tags/svn/" style="font-size: 11px;">svn</a> <a href="/tags/sync/" style="font-size: 10px;">sync</a> <a href="/tags/test/" style="font-size: 11px;">test</a> <a href="/tags/time/" style="font-size: 10px;">time</a> <a href="/tags/tools/" style="font-size: 16px;">tools</a> <a href="/tags/valgrind/" style="font-size: 10px;">valgrind</a> <a href="/tags/vi/" style="font-size: 10px;">vi</a> <a href="/tags/vim/" style="font-size: 14px;">vim</a> <a href="/tags/virtual/" style="font-size: 11px;">virtual</a> <a href="/tags/wget/" style="font-size: 10px;">wget</a> <a href="/tags/windows/" style="font-size: 11px;">windows</a> <a href="/tags/wireshark/" style="font-size: 10px;">wireshark</a> <a href="/tags/write/" style="font-size: 13px;">write</a> <a href="/tags/xml/" style="font-size: 10px;">xml</a>
    </div>
  </div>

  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Archives</h3>
    <div class="widget">
      <ul class="archive-list"><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/07/">July 2016</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/04/">April 2016</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/03/">March 2016</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/02/">February 2016</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/01/">January 2016</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/11/">November 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/10/">October 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/09/">September 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/08/">August 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/07/">July 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/06/">June 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/03/">March 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/02/">February 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/01/">January 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/12/">December 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/11/">November 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/09/">September 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/08/">August 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/07/">July 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/06/">June 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/05/">May 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/04/">April 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/03/">March 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/11/">November 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/10/">October 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/09/">September 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/08/">August 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/07/">July 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/06/">June 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/05/">May 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/04/">April 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/03/">March 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/02/">February 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/01/">January 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2012/12/">December 2012</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2012/09/">September 2012</a></li></ul>
    </div>
  </div>


  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Articles récents</h3>
    <div class="widget">
      <ul>
        
          <li>
            <a href="/2016/07/17/how-to-implement-malloc/">如何实现一个malloc</a>
          </li>
        
          <li>
            <a href="/2016/07/17/study-grep-more/">grep工作原理</a>
          </li>
        
          <li>
            <a href="/2016/07/17/2016-04-13-malloc/">malloc</a>
          </li>
        
          <li>
            <a href="/2016/04/27/include-what-you-use/">使用IWYU整理头文件引用</a>
          </li>
        
          <li>
            <a href="/2016/04/24/understand-gcc-assembly-output/">understand gcc assembly output</a>
          </li>
        
      </ul>
    </div>
  </div>

  
</aside>
        
      </div>
      <footer id="footer">
  
  <div class="outer">
    <div id="footer-info" class="inner">
      &copy; 2016 Matrix207<br>
      Propulsé by <a href="http://hexo.io/" target="_blank">Hexo</a>
    </div>
  </div>
</footer>
    </div>
    <nav id="mobile-nav">
  
    <a href="/" class="mobile-nav-link">Home</a>
  
    <a href="/archives" class="mobile-nav-link">Archives</a>
  
</nav>
    

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>


  <link rel="stylesheet" href="/fancybox/jquery.fancybox.css">
  <script src="/fancybox/jquery.fancybox.pack.js"></script>


<script src="/js/script.js"></script>

  </div>
</body>
</html>